/* * Copyright (c) 2010 Mysema Ltd. * All rights reserved. * */ package com.mysema.codegen.model; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import java.util.Collections; import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Set; import org.junit.Test; public class TypeTest { private Set<String> packages = Collections.singleton("java.lang"); private Set<String> classes = Collections.emptySet(); private ClassType locale = new ClassType(TypeCategory.SIMPLE, Locale.class); private Type string = Types.STRING; private Type string2 = new SimpleType(string); private Type locale2 = new SimpleType(locale); private Type stringList = new ClassType(TypeCategory.LIST, List.class, Types.STRING); private Type stringList2 = new SimpleType(Types.LIST, Types.STRING); private Type stringMap = new ClassType(TypeCategory.MAP, Map.class, Types.STRING, Types.STRING); private Type stringMap2 = new SimpleType(Types.MAP, Types.STRING, Types.STRING); @Test public void arrayType() { assertEquals("Object[]", Types.OBJECTS.getGenericName(true).toString()); } @Test public void Equals() { assertEquals(locale, locale2); assertEquals(locale2, locale); assertEquals(stringList, stringList2); assertEquals(stringList2, stringList); } @Test public void Hashcode() { assertEquals(locale.hashCode(), locale2.hashCode()); assertEquals(stringList.hashCode(), stringList2.hashCode()); } @Test public void GetGenericNameBoolean() { assertEquals("java.util.Locale", locale.getGenericName(true)); assertEquals("java.util.Locale", locale2.getGenericName(true)); assertEquals("java.util.List<String>", stringList.getGenericName(true)); assertEquals("java.util.List<String>", stringList2.getGenericName(true)); assertEquals("java.util.Map<String, String>", stringMap.getGenericName(true)); assertEquals("java.util.Map<String, String>", stringMap2.getGenericName(true)); assertEquals("String", string.getGenericName(true)); assertEquals("String", string2.getGenericName(true)); } @Test public void GetRawName() { assertEquals("java.util.Locale", locale.getRawName(packages, classes)); assertEquals("java.util.Locale", locale2.getRawName(packages, classes)); assertEquals("java.util.List", stringList.getRawName(packages, classes)); assertEquals("java.util.List", stringList2.getRawName(packages, classes)); assertEquals("String", string.getRawName(packages, classes)); assertEquals("String", string2.getRawName(packages, classes)); } @Test public void GetGenericNameBooleanSetOfStringSetOfString() { assertEquals("java.util.Locale", locale.getGenericName(true, packages, classes)); assertEquals("java.util.Locale", locale2.getGenericName(true, packages, classes)); assertEquals("java.util.List<String>", stringList.getGenericName(true, packages, classes)); assertEquals("java.util.List<String>", stringList2.getGenericName(true, packages, classes)); } @Test public void GetFullName() { assertEquals("java.util.Locale", locale.getFullName()); assertEquals("java.util.Locale", locale2.getFullName()); assertEquals("java.util.List", stringList.getFullName()); assertEquals("java.util.List", stringList2.getFullName()); } @Test public void GetPackageName() { assertEquals("java.util", locale.getPackageName()); assertEquals("java.util", locale2.getPackageName()); assertEquals("java.util", stringList.getPackageName()); assertEquals("java.util", stringList2.getPackageName()); } @Test public void GetParameters() { assertEquals(Collections.emptyList(), locale.getParameters()); assertEquals(Collections.emptyList(), locale2.getParameters()); assertEquals(Collections.singletonList(Types.STRING), stringList.getParameters()); assertEquals(Collections.singletonList(Types.STRING), stringList2.getParameters()); } @Test public void GetSimpleName() { assertEquals("Locale", locale.getSimpleName()); assertEquals("Locale", locale2.getSimpleName()); assertEquals("List", stringList.getSimpleName()); assertEquals("List", stringList2.getSimpleName()); } @Test public void GetJavaClass() { assertEquals(Locale.class, locale.getJavaClass()); } @Test public void IsFinal() { assertTrue(locale.isFinal()); assertTrue(locale2.isFinal()); assertFalse(stringList.isFinal()); assertTrue(Types.STRING.isFinal()); assertTrue(Types.LONG.isFinal()); } @Test public void IsPrimitive() { assertFalse(locale.isPrimitive()); assertFalse(locale2.isPrimitive()); assertFalse(stringList.isPrimitive()); assertFalse(stringList2.isPrimitive()); } @Test public void GetCategory() { assertEquals(TypeCategory.SIMPLE, locale.getCategory()); assertEquals(TypeCategory.SIMPLE, locale2.getCategory()); assertEquals(TypeCategory.LIST, stringList.getCategory()); assertEquals(TypeCategory.LIST, stringList2.getCategory()); } @Test public void As() { assertEquals(TypeCategory.SIMPLE, stringList.as(TypeCategory.SIMPLE).getCategory()); assertEquals(TypeCategory.SIMPLE, stringList2.as(TypeCategory.SIMPLE).getCategory()); } // @Test // public void GetPrimitiveName() { // assertNull(locale.getPrimitiveName()); // assertNull(locale2.getPrimitiveName()); // assertNull(stringList.getPrimitiveName()); // assertNull(stringList2.getPrimitiveName()); // } @Test public void ToString() { assertEquals("java.util.Locale", locale.toString()); assertEquals("java.util.Locale", locale2.toString()); assertEquals("java.util.List<String>", stringList.toString()); assertEquals("java.util.List<String>", stringList2.toString()); } @Test public void AsArrayType() { assertEquals("java.util.Locale[]", locale.asArrayType().getFullName()); assertEquals(TypeCategory.ARRAY, locale.asArrayType().getCategory()); assertEquals("java.util.Locale[]", locale2.asArrayType().getFullName()); assertEquals(TypeCategory.ARRAY, locale2.asArrayType().getCategory()); assertEquals("java.util.List[]", stringList.asArrayType().getFullName()); assertEquals("java.util.List[]", stringList2.asArrayType().getFullName()); } }